﻿using PowerHub.MES.DTO.Crew.DTO;
using PowerHub.MES.DTO.Crew.QueryDto;
using PowerHub.MES.DTO.Shopfloor.QueryDTO;
using PowerHub.MES.Entities.Crew;
using PowerHub.MES.Entities.Shopfloor;
using PowerHub.MES.ReturnEntity;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace PowerHub.MES.IRepository.ICrew
{
    /// <summary>
    /// 排班计划明细数据接口层
    /// </summary>
    public interface ICrew_SchedulingPlanDetialRepository
    {
        /// <summary>
        /// 获取排班计划明细列表
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        public Task<OperationPageResult<List<Crew_SchedulingPlanDetial>>> GetCrew_SchedulingPlanDetialPageListAsync(QueryCrew_SchedulingPlanDTO query);
        /// <summary>
        /// 根据id获取排班计划明细
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        public Task<Crew_SchedulingPlanDetial> GetCrew_SchedulingPlanDetialByIdAsync(string query);

        /// <summary>
        /// 添加排班计划明细
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        public Task<OperationResult<bool>> CreateCrew_SchedulingPlanDetialAsync(Crew_SchedulingPlanDetial query);

        /// <summary>
        /// 批量删除排班计划明细
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        public Task<OperationResult<bool>> DeletionCrew_SchedulingPlanDetialAsync(List<string>? ids);

        /// <summary>
        /// 修改
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        public Task<OperationResult<bool>> UpdateCrew_SchedulingPlanDetialAsync(Crew_SchedulingPlanDetial query);
        /// <summary>
        /// 根据明细id更新排班计划明细
        /// </summary>
        /// <returns></returns>
        /// <exception cref="Exception"></exception>
        public Task<OperationResult<bool>> UpdateCrew_SchedulingPlanDetialByIdAsync(CrewSchedulingPlanDetialsDtos query);
    }
}
